// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
//引入组件
import About from '@/pages/About.vue'
import Home from '@/pages/Home.vue'
import News from '@/pages/News.vue'
import Details from '@/pages/Details.vue'
import ShowInfo from '@/pages/ShowInfo.vue'


export default new VueRouter({
    routes: [
        {
            //命名路由，有名字之后可通过to指定【name】的路由，不用再指定多级目录
            name: 'guanyu',
            path: '/about',
            component: About
        },
        {
            path: '/home',
            component: Home,
            children: [
                {
                    path: 'news',
                    component: News
                },
                {
                    path: 'details',
                    component: Details,
                    children: [
                        {
                            //命名路由，有名字之后可通过to指定【name】的路由，不用再指定多级目录
                            name: 'xiangqing',
                            path: 'showInfo/:id/:value',
                            component: ShowInfo,

                            //这样定义后，组件中获取参数过多时很麻烦，所以Vue通过props方式解决

                            //1：props第一种对象写法，传递固定数据，可在组件直接通过props接收并使用。 用的比较少。
                            //props: { a: 1, b: 'hello' }

                            //2：props第二种写法，值为布尔值。
                            //若布尔值为真，就会把该路由收到的所有params参数，以props形式传递给组件
                            //props: true

                            //3：props第三种写法，定义一个带返回值回调函数，VUE会调用
                            //可接收当前路由，可直接获取并通过props传递给组件（可兼容query方式！！！）
                            props(route) {
                                return {
                                    //id:route.query.id,
                                    id: route.params.id,
                                    value: route.params.value
                                    //可扩展更多参数
                                }
                            }
                        }
                    ]
                }
            ]
        },
    ]
})